URL existiert Nachts nicht

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

Ioniq
Posts: 11
Joined: 01 May 2020, 09:59

URL existiert Nachts nicht

20 May 2020, 15:06

Hallo,
ich habe ein kleines Programm mit AHK geschrieben, welches aus meinem Solar-Wechselrichter Daten ausliest. Läuft auch recht gut. Nur habe ich ein Problem:
Der Wechselrichter schaltet sich ein wenn die Sonne scheint.
Er schaltet sich Abends aus, wenn die Sonne weg ist.
Wie kann ich meinem Programm sagen, die URL ist nicht zu erreichen. Reicht dieser Befehl:

Code: Select all

UrlDownloadToFile, http 192.168.178.5/status.html, 		%A_ScriptDir%\WR1.txt
if ErrorLevel  = 1  
   {
    ...
   }
Wenn das so ok ist, wie lange dauert es, bis der ErrorLevel auf 1 gesetzt wird? Bzw. andersherum gefragt: wie lange versucht der Befehl UrlDownloadToFile auf die URL zuzugreifen?

oder gibt es da was anderes wie " if URL exist" ...
BoBo
Posts: 3015
Joined: 13 May 2014, 17:15

Re: URL existiert Nachts nicht

20 May 2020, 15:32

Wie wäre es, die URL schlicht anzuPingen?
BNOLI
Posts: 548
Joined: 23 Mar 2020, 03:55

Re: URL existiert Nachts nicht

21 May 2020, 01:19

Das könnte dann doch etwa so aussehen (ohne StdOutToVar etc.) ...

Code: Select all

#Persistent
#SingleInstance, Force
SetWorkingDir,% A_ScriptDir
toPing .= "192.168.178."	; 5
SetTimer, WRCheck, % 0.5*60*1000 ; zum test check alle 30sec - auf gegebenheiten anzupassen
return

WRCheck:
	Random, hNo, 1, 5	; zum test hostaufruf variierend, hier wird also jetzt versuchsweise auf 192.168.178.1/2/3/4/5 gepingt
    RunWait, % "cmd.exe /c ping " toPing . hNo " > WR1Ping.txt",, Hide	; ping attempt. Ausgabedatei wird jeweils überschrieben. Variierende ip nach test statisch machen!
	if FileExist("WR1Ping.txt")
		FileRead, content, WR1Ping.txt	; response des ping attempts auslesen
    if InStr(content,"Zielhost nicht erreichbar")	; hier den 'fehler'- string gemäß ausgabedatei ggf anpassen
        Return
    Else
        UrlDownloadToFile, 192.168.178.5/status.html ,%  "WR1_" A_Now ".txt"    ; download. dateiname = "WR1_<Zeitstempel>.txt"
	Return
[Edit. fehlerhafte/nichtexistente function FileRead() durch FileRead-Befehl ersetzt)]
Last edited by BNOLI on 21 May 2020, 08:33, edited 2 times in total.
Remember to use [code]CODE[/code]-tags for your multi-line scripts. Stay safe, stay inside, and remember washing your hands for 20 sec !
just me
Posts: 7102
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: URL existiert Nachts nicht

21 May 2020, 04:11

Moin,

wenn bevorzugt, gibt es für das Ping auch eine AHK-Lösung: Ping4 - IPv4 ping function (2015-07-16)
garry
Posts: 2279
Joined: 22 Dec 2013, 12:50

Re: URL existiert Nachts nicht

21 May 2020, 06:28

ein Beispiel mit internet radio , run vlc.exe if urlexist

Code: Select all

;--- example for try/catch/error CHECK URL ------------------
f1:="http://144.217.253.136:8582/played.html"   ; streaming radio show played 
f2:="http://144.217.253.136:8582"               ; run with vlc if urlexist
;------------------------------------------------
;f1:="http://www.wrongadress.htm"               ;- wrong url not exists
;f1:="https://autohotkey.com/boards/"           ;- URL
;------------------------------------------------
xx:=ComObjCreate("WinHttp.WinHttpRequest.5.1")  ;-Create the Object
;ComObjError(false)
;xx.Silent := True    ;- script failure = off
xx.SetTimeouts(500,500,500,500)
try {
    xx.Open("GET",f1)                           ;-Open communication
    xx.Send()                                   ;-Send the "get" request
    aac=
    aac:=xx.ResponseText                        ;-Set the "aac" variable to the response
    ;msgbox, 262208,%f1% exists`n-----------------`n %aac%
} catch e {
    xxx:=e.Message
    msgbox, 262208,NO SUCCESS ERROR ,Error=Catch`n%f1%`n NOT exists`n------------------------------------------`n%xxx%`n------------------------------------------,
    return
    }
if f1 contains `:8
{
StringReplace,aac,aac,</tr>,$, All
aac:=RegExReplace(aac, "<.*?>" )
aac:=comunhtml(aac)
Loop,parse,aac,$,
   {
   if a_loopfield contains function
    break
   new .= a_loopfield "`n"
   }
msgbox, 262208,SUCCESS,URL EXISTS=`n%f1%`n-----------------`nPLAYED_SONGS`n%new%
vlcx        =%A_programfiles%\VideoLAN\VLC\vlc.exe
ifexist,%vlcx%
 run,%vlcx% --one-instance "%f2%",,,
 ;run,%vlcx% --one-instance --qt-start-minimized %f2%,,hide,pid1
return
}
msgbox, 262208,SUCCESS,URL EXISTS=`n%f1%
return
;----------------
ComUnHTML(html) {
    oHTML := ComObjCreate("HtmlFile")
    oHTML.write(html)
    Return oHTML.documentElement.innerText
}
;================================================================================
User avatar
LuckyJoe
Posts: 264
Joined: 02 Oct 2013, 09:52

Re: URL existiert Nachts nicht

22 May 2020, 02:29

@garry [offtopic]: was für eine g* Musik :lol: :thumbup:
Herzliche Grüße aus dem Rheinland
Lucky Joe
BNOLI
Posts: 548
Joined: 23 Mar 2020, 03:55

Re: URL existiert Nachts nicht

22 May 2020, 02:51

LuckyJoe wrote:
22 May 2020, 02:29
@garry [offtopic]: was für eine g* Musik :lol: :thumbup:
Den Sender kann man auch via Amazon Echo abhören: "Alexa, spiele ABC 50 (fifthies) auf TuneIn" :mrgreen: (gibts auch für 60's+80's)
Remember to use [code]CODE[/code]-tags for your multi-line scripts. Stay safe, stay inside, and remember washing your hands for 20 sec !
garry
Posts: 2279
Joined: 22 Dec 2013, 12:50

Re: URL existiert Nachts nicht

22 May 2020, 04:33

hello Lucky Joe
was ist g* Musik ? > geriatrisch alt ...
danke für die Grüsse aus dem Rheinland ( Koblenz-Mainz ( ? ) )
war 4 Jahre unterwegs auf dem Rhein , Mosel, Neckar ,Main, Niederlande

BNOLI
Den Sender kann man auch via Amazon Echo abhören: "Alexa, spiele ABC 50 (fifthies) auf TuneIn" :mrgreen: (gibts auch für 60's+80's)
habe immer noch die alten Werkzeuge , z.B.
-Handy 2G welches Ende Jahr nicht mehr funktioniert , Accu nur alle 4 Wochen laden
-Basic Rechner 1982 auf 20 Stellen genau Li Batterie zu 1 Euro alle 15 Jahre wechseln / alle Programme noch enthalten
-Music hören mit altem Verstärker / u.a. billigen DVD Player mit Audio out um Musik zu hören ( MP3 download von Youtube / Internet )
muss nächsten smartphone aktivieren mit flatrate
User avatar
LuckyJoe
Posts: 264
Joined: 02 Oct 2013, 09:52

Re: URL existiert Nachts nicht

22 May 2020, 05:07

Hi garry
was ist g* Musik ? > geriatrisch alt ...
... gemeint war "geile Musik" ;-)
Rheinland ( Koblenz-Mainz ( ? ) )
... Kölner Umland ;-)

BNOLI
Den Sender kann man auch via Amazon Echo abhören: "Alexa, spiele ABC 50 (fifthies) auf TuneIn" :mrgreen: (gibts auch für 60's+80's)
Danke für den Tipp :thumbup:
Herzliche Grüße aus dem Rheinland
Lucky Joe
Ioniq
Posts: 11
Joined: 01 May 2020, 09:59

Re: URL existiert Nachts nicht

22 May 2020, 05:08

Danke für die Tips. Das mit dem Ping werde ich mal ausprobiern. Wobei das mit dem Radio auch interessant wäre.
garry
Posts: 2279
Joined: 22 Dec 2013, 12:50

Re: URL existiert Nachts nicht

22 May 2020, 06:41

@Ioniq , beim Beispiel geht's nicht um Radio
wenn beim 'try' kein Erfolg , heisst es dass urlnotexist, beim 'catch' denn ein return bzw. evtl Fehlermeldung falls erwünscht , if url exist weiterfahren und denn hier mit vlc.exe url abspielen , im Prinzip nur
run,%vlcx% --one-instance "%f2%"
der Rest war Spielerei , Anzeige von Current song und letzte gespielte Lieder
ComUnHTML ist eine function welches url text lesbarer macht ( entfernt &apos etc.. )

@LuckyJoe Köln , 4711 , Dom ... kenne die Stadt leider nicht , zig-mal auf dem Rhein vorbeigefahren
https://www.ksta.de/
Ioniq
Posts: 11
Joined: 01 May 2020, 09:59

Re: URL existiert Nachts nicht

22 May 2020, 07:56

Habe das Script zum Laufen gebracht. :clap:
Hatte aber ein Problem mit:

Code: Select all

  UrlDownloadToFile, 192.168.178.5/status.html ,%  "WR1_" A_Now ".txt"    ; download. dateiname = "WR1_<Zeitstempel>.txt"
Habe es etwas verändern müssen und musste noch ein https// davor setzen!

Code: Select all

  UrlDownloadToFile, https//192.168.178.5/status.html , WR1.txt"
Was für eine Funktion hat das Prozentzeichen?
Danke nochmals.
BNOLI
Posts: 548
Joined: 23 Mar 2020, 03:55

Re: URL existiert Nachts nicht

22 May 2020, 09:44

Ioniq wrote:
22 May 2020, 07:56
Habe es etwas verändern müssen und musste noch ein https// davor setzen!

Code: Select all

  UrlDownloadToFile, https//192.168.178.5/status.html , WR1.txt"
Was für eine Funktion hat das Prozentzeichen?
Danke nochmals.
Ich denke das https//... dürfte noch einen Doppelpunkt vertragen: https://192.168.178.5/...!?
Das Prozentzeichen bewirkt einen erzwungenen Ausdruck/forced expression in AHKs-Befehlssatz.
Force an expression: An expression can be used in a parameter that does not directly support it (except OutputVar parameters) by preceding the expression with a percent sign and a space or tab. In [v1.1.21+], this prefix can be used in the InputVar parameters of all commands except the traditional IF commands (use If (expression) instead).
---
Einen Ausdruck erzwingen: Standardmäßig unterstützen Befehlsparameter (außer AusgabeVar-Parameter) keine Ausdrücke, aber man kann mithilfe eines Prozentzeichens und Leer- oder Tabulatorzeichens ein Ausdruck in einem Parameter erzwingen. In [v1.1.21+] kann dieses Präfix in den EingabeVar-Parametern von fast allen Befehlen verwendet werden; benutzen Sie für die traditionellen IF-Befehlen stattdessen If (Ausdruck).

Quelle: https://www.autohotkey.com/docs/Variables.htm#Expressions
Beispiel 'legacy'-Schreibweise für die Ausgabedatei.

Code: Select all

UrlDownloadToFile, https://192.168.178.5/status.html , WR1_%A_Now%.txt
Beispiel 'forced expression'-Schreibweise für die Ausgabedatei.

Code: Select all

UrlDownloadToFile, https://192.168.178.5/status.html ,% "WR1_" . A_Now . ".txt"
Remember to use [code]CODE[/code]-tags for your multi-line scripts. Stay safe, stay inside, and remember washing your hands for 20 sec !
Ioniq
Posts: 11
Joined: 01 May 2020, 09:59

Re: URL existiert Nachts nicht

24 May 2020, 02:38

Danke für den Hinweis mit dem % Zeichen.
Bin noch so auf Basic von 1980- 1990 gepolt.
Den ":" hatte ich in der Programmzeile, aber hier beim schreiben vergessen.
garry
Posts: 2279
Joined: 22 Dec 2013, 12:50

Re: URL existiert Nachts nicht

24 May 2020, 03:15

noch mit basic ...
EDIT : added GUI Mathe

Code: Select all

10:input "Ankathete=";ak:input "Gegenkathete=";gk:c=ATN(gk/ak):Print "Angle=";c
neu mit ahk GUI /EDIT

Code: Select all

c:=(atan(gk/ak))*(180/3.141592653589793)

Code: Select all

;- mathematic example GUI trigonometrie mathex sinusx ------------------
/*
gwbasic example:
10:input "adjacent side=";ak:input "opposite catheter=";gk:c=ATN(gk/ak):Print "Angle=";c
10:input "Ankathete=";ak:input "Gegenkathete=";gk:c=ATN(gk/ak):Print "Angle=";c
*/

#warn
#NoEnv
SendMode,Input
SetWorkingDir, %A_ScriptDir%
Setformat,float,0.2
wa:=A_screenwidth
ha:=A_screenHeight
xx:=100
if (wa=3840)
   fontsize1=14
else
   fontsize1=11
Gui,2:  -DPIScale
c1=D4D0C8                                                   ;- gray normal msgbox
Gui,2: Color, Black,%c1%                                    ;- Gui color / background from Edit
Gui,2: Font,cYellow s%fontsize1% ,Lucida Console            ;- font , font-size and color
;----------------
x:=(wa*1)/xx,y1:=(ha*2)/xx,y2:=(ha*5)/xx,y3:=(ha*8)/xx
gui,2: add, text,  x%x%  y%y1%         , Ankathete    =
gui,2: add, text,  x%x%  y%y2%         , Gegenkathete =
gui,2: add, text,  x%x%  y%y3% cWhite  , WINKEL-Grad  =
;----------------
x:=(wa*9)/xx,w:=(wa*6)/xx,h:=(ha*2.6)/xx
gui,2: add, edit,  x%x% y%y1%  h%h% w%w% vAK number right cBlack, 100
gui,2: add, edit,  x%x% y%y2%  h%h% w%w% vGK number right cBlack, 100
gui,2: add, edit,  x%x% y%y3%  h%h% w%w% vResult readonly cWhite right,
;----------------
x1:=(wa*9)/xx,x2:=(wa*1)/xx,y:=(ha*12)/xx,w:=(wa*6)/xx,h:=(ha*2.6)/xx
gui,2: add, button,x%x1%  y%y% h%h% w%w%  gCalc  , Calculate
gui,2: add, button,x%x2%  y%y% h%h% w%w%  gClear1, Clear
;----------------
x:=(wa*7)/xx,y:=(ha*1)/xx,w:=(wa*17)/xx,h:=(ha*17)/xx
gui,2: show ,x%x% y%y% w%w% h%h%,SINUS trigonometrie
;----------------
GuiControl,2:Focus,ak
send,^{end}
return
;------------------------
2Guiclose:
exitapp
;------------------------

#IfWinActive,SINUS trigonometrie ahk_class AutoHotkeyGUI
~$enter::
Gui,2:submit,nohide
send,{tab}
GuiControlGet,CF,2:FocusV  ;-    E1
;GuiControlGet,CF2,2:Focus  ;- EDIT1
;msgbox,AK=%ak%`nGK=%gk%`nFocusV=%cf%`nFocus=%cf2%
if (cf="result")
  gosub,calc
return
#if
;------------------------
clear1:
GuiControl,2:,ak
GuiControl,2:,gk
GuiControl,2:,result,
GuiControl,2:Focus,ak
return
;------------------------
calc:
Gui,2:submit,nohide
if (ak="" or gk="")
   return
c:=(atan(gk/ak))*(180/3.141592653589793)
GuiControl,2:,result,%c%
GuiControl,2:Focus,ak
send,^{end}
return
;===========================================================================
Last edited by garry on 24 May 2020, 13:57, edited 1 time in total.
BoBo
Posts: 3015
Joined: 13 May 2014, 17:15

Re: URL existiert Nachts nicht

24 May 2020, 03:31

Bin noch so auf Basic von 1980- 1990 gepolt.
Dann dürfte dies ein potentielles Betätigungsfeld sein: https://www.b4x.com/b4a.html AKA basic4android, and iOS (free) ;)
garry
Posts: 2279
Joined: 22 Dec 2013, 12:50

Re: URL existiert Nachts nicht

24 May 2020, 03:43

war ein Beispiel mit GWBASIC (DOS) mit Liniennummerierung , benütze noch gerne den alten Sharp PC-1262
für das neuere Basic müsste umlernen und Android smartphone benützen ... bin zu faul ... bleibe gerne bei Autohotkey mit GUI /EDIT
Ioniq
Posts: 11
Joined: 01 May 2020, 09:59

Re: URL existiert Nachts nicht

24 May 2020, 06:01

GWBasic, das waren Zeiten. Hatte damals den Sharp 1401, aufgerüstet. Die Batterien hatten vor 3 Jahren noch funktioniert (von 1986!), Display war kaum zu sehen, aber von der Seite betrachtet hat alles noch funktioniert.
Tja, damals. Heute sind andere Zeiten. Und viele neue Programm und Tools... Das meiste wird einfacher, hoffe ich.
garry
Posts: 2279
Joined: 22 Dec 2013, 12:50

Re: URL existiert Nachts nicht

24 May 2020, 06:41

ja , die Lithium Batterien halten ewig ( CR 2032 ) (auto power off / memory safe guard ) , im Speicher sind noch alle Formeln erhalten + nachträglich USB Anschluss , so im Texteditor Program schreiben ( oder vom Internet ) und denn auf's Rechner laden
wobei die Formeln sind schnell eingetippt
obiges Beispiel kürzlich gebraucht zum Brett abschneiden , Eingabe der 2 bekannten Variablen und erhalte Winkel ( in der Werkstatt , besser ohne Computer )
falls Interesse am ahk Radioprogramm :
https://www.autohotkey.com/boards/viewtopic.php?f=76&t=72452
Ioniq
Posts: 11
Joined: 01 May 2020, 09:59

Re: URL existiert Nachts nicht

26 May 2020, 02:57

Momentan bin ich froh etwas Ruhe zu haben. Aber Interessieren würde es mich auf jeden Fall mal.
Mein Programm ist heute das erste mal ohne Unterbrechuug die Nacht durchgelaufen. Das mit dem Ping ist eine feine Sache.

Return to “Ich brauche Hilfe”

Who is online

Users browsing this forum: Rohwedder and 20 guests