1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

mit Applescript Variable kürzen?

Dieses Thema im Forum "AppleScript" wurde erstellt von Smudo, 13.08.08.

  1. Smudo

    Smudo Erdapfel

    Dabei seit:
    13.08.08
    Beiträge:
    5
    Hallo zusammen...
    ich möchte aus eine, Mithilfe von der Wettersoftware LWC generierte Html Datei auslesen und als
    variable an Indigo für meine Heizungssteurung weitergeben.

    Soweit so gut...
    Das Problem ist nur das LWC in der html Datei nicht nur die Temperatur ausgibt sondern auch den Unterschied zur vorherigen Messung in Klammer setzt.
    Das ganze sieht dann in der html so aus:

    22,5C (3,8)

    Ich hab da als absoluter Anfänger mit Hilfe des Internets dieses Script gebastelt:
    Code:
    set filePath to "/Users/MAC7/web/pages/Heimautomation/wetter/WetterWeb/template.html"
    set bolIn to " "
    set varIn to "Temp_In"
    tell application "IndigoServer"
    	set value of variable varIn to do shell script "sed -n '/" & bolIn & "/p' " & filePath & "  | sed  's/C//' | sed  's/,/./' "
    end tell
    
    Jetzt bekomme ich in Indigo folgende Variable:
    22.5 (3,8)

    Ich musste den Beistrich durch einen Punkt ersetzen da Indigo keine Variaben mit Beistrich kennt.
    Aber das Problem ist nun das Indio nur die Zahlen (im meinen Beispiel 22.5) als Variable für
    die Steuerung erkennen kann. Die Leerzeile und die Klammer mit Inhalt muss weg!

    Wie kann ich die Klammer vollständig mit einem Script Befehl entfernen?

    Vielen Dank für eure Hilfe im voraus...

    Grüße
    Smudo
     
  2. CloneOfMyself

    CloneOfMyself Weigelts Zinszahler (Rotfranch)

    Dabei seit:
    24.02.07
    Beiträge:
    253
    #2 CloneOfMyself, 13.08.08
    Zuletzt bearbeitet: 13.08.08
  3. Smudo

    Smudo Erdapfel

    Dabei seit:
    13.08.08
    Beiträge:
    5
    Hallo CloneMySelf..
    ich bin mir sicher du hast es gut gemeint... aber wie könnte mir das weiterhelfen?
    Wenn ich auf den Link clicke dann springt zwar mein Applesript Editor auf, aber mehr passiert da auch nicht...

    Grüße
     
  4. CloneOfMyself

    CloneOfMyself Weigelts Zinszahler (Rotfranch)

    Dabei seit:
    24.02.07
    Beiträge:
    253
    Oh. Sorry. Da war noch ein Fehler in meinem TinyCode-Script. :eek:
    Das wollte ich sagen:

    -- Applescript kann auch einfach sein
    word 1 of "22.5 (3,8)" --> Ergebnis: "22.5"
     
  5. DerPrenzlberger

    DerPrenzlberger Damasonrenette

    Dabei seit:
    10.08.07
    Beiträge:
    492
    text 1 thru 4 of ....

    also text 1 thru 4 of "28,5 (3,0)"
     
  6. Smudo

    Smudo Erdapfel

    Dabei seit:
    13.08.08
    Beiträge:
    5
    Halle CloneMySelf & Der Prenzlberger...
    wenn ich eure Anleitung richtig verstehe dann sollte ich via Applescript den Befehl geben
    entweder mit "text 1 thru 4 of "22.5 (3,8)
    oder mit word 1 of.......
    die nachfolgenden Wörter (in meinen Fall die Klammer) einfach zu streichen.

    Ich glaube aber das diese Codes mit Variablen nicht funktionieren werden.
    Denn die 22.5 (3,8) ist ja die ausgelesene Raumtemperatur von meiner Wetterstation.
    Das heisst diese Werte ändern sich alle 5 Min!

    Falls das doch funktionieren sollte:
    Kann mir jemand sagen wo und wie ihr den Befehl einfügen wollt?

    Vielen Dank nochmal...
     
  7. DerPrenzlberger

    DerPrenzlberger Damasonrenette

    Dabei seit:
    10.08.07
    Beiträge:
    492
    "word" bzw. "text" kürzen einen Text entsprechend ein. Anstelle der von uns in "" gesetzten Werte musst Du Deine Variable setzen.
    Beispiel:

    set Variable1 to "28,5 (3,0)"
    text 1 thru 4 of Variable1
     
  8. Smudo

    Smudo Erdapfel

    Dabei seit:
    13.08.08
    Beiträge:
    5
    Hallo..
    vielen Dank für deine rasche Antwort!

    Ich glaube es ist schon zu spät um da logisch denken zu können oder/und ich steh massiv auf der Leitung!

    Hier nochmal mein Code:

    set filePath to "/Users/MAC7/web/pages/Heimautomation/wetter/WetterWeb/template.html"
    set bolIn to " "
    set varIn to "Temp_In"
    tell application "IndigoServer"
    set value of variable varIn to do shell script "sed -n '/" & bolIn & "/p' " & filePath & " | sed 's/C//' | sed 's/,/./'"
    end tell

    Ich bekomme doch nirgends die Temperatur als "Klartext" ausgewiesen...
    durch den Befehl "tell application "IndigoServer" schicke ich die Variablen direkt dort hin, oder?
    Entsprechend kann ich sie so auch nicht kürzen... glaube ich zumindest...

    Vielleicht kannst du mir nochmal helfen.....
     
  9. CloneOfMyself

    CloneOfMyself Weigelts Zinszahler (Rotfranch)

    Dabei seit:
    24.02.07
    Beiträge:
    253
    oder gleich:

    Code:
    set value of variable varIn to do shell script "sed -n '/" & bolIn & "/p' " & filePath & " | sed -E 's/([0-9]+),([0-9]+)C.*/\\1.\\2/'"
     
  10. Smudo

    Smudo Erdapfel

    Dabei seit:
    13.08.08
    Beiträge:
    5
    Servus CloneOfMyself...
    das wars!!!!!!

    Ich hab noch ein variable für "set value of variable varIn" gebraucht & nun läuft es einwandfrei!

    Vielen Dank für euren Support!!!!
     
  11. CloneOfMyself

    CloneOfMyself Weigelts Zinszahler (Rotfranch)

    Dabei seit:
    24.02.07
    Beiträge:
    253
    Das andere wäre aber auch gegangen: Der "do shell script" liefert ja nur einen String zurück, den du als "value of variable varIn" an den IndigoServer sendest. Bevor Du das tust, kannst Du den String natürlich auch mit AppleScript-Mitteln einkürzen und dann senden.
     

Diese Seite empfehlen