Posts by ChrisChip

Registriere dich jetzt, um exklusive Vorteile zu genießen! Als registriertes Mitglied kannst du Inhalte herunterladen und profitierst von einem werbefreien Forum.
Mach mit und werde Teil unserer Community!

    Habs hinbekommen!


    Tell : Vielen Dank für die Hilfe :)


    Vielen Dank für die Hilfe!


    Die Verbindung klappt soweit, schmeißt aber noch einen Fehler:

    Der Port ist per default 502, oder muss ich den noch angeben?

    Code
    Traceback (most recent call last):
      File "write_modbus.py", line 21, in <module>
        assert not rq.isError()
    AssertionError
    Python
    from pymodbus.client.sync import ModbusTcpClient
    
    client = ModbusTcpClient('192.168.178.61')
    rq = client.write_register(37, 500, slave=228)
    assert not rq.isError()
    client.close()

    Hallo zusammen,


    bin leicht am verzweifeln. Bekomme es nicht gebacken, einen Wert auf ein Modbus Register zu schreiben (Modbus TCP).

    Die Daten die ich senden möchte:

    IP: 192.168.178.61

    Slave ID: 228

    Adresse: 37

    Value: 500


    Habe etwas rumgespielt mit pymodbus, komme aber leider zu keinem Ergebnis. Die Dokumentation von pymodbus ist sehr umfangreich, hat mir da auch nicht weitergeholfen. ;(


    Hätte bitte jemand ein einfaches Beispiel, wie ich die Daten mit python senden kann?

    Servus zusammen,


    würde gerne folgendes in PHP machen:


    Code
    curl -d '{ "Permanent": true, "RemoteCurr": 6, "AutoChg": null, "ChgState": null, "Uid": null}' -H "Content-Type: application/json" -X POST http://10.0.1.28:25000/MHCP/1.0/ChargeData?DevKey=XXXXXX 


    Jemand eine Idee wie ich das hinbekomme?

    Quote

    Das m.M.n. viel zu oft , denn die 301er verbrauchen ja Strom zum Auslesen und Senden der Daten und damit die Batterien. Davon abgesehen ändern sich so schnell keine Temperaturen im Normalbetrieb. Wenn Du Lüften erkennen willst, dann würde imho auch locker alle 15 Minuten ausreichen

    Muss mich hier korrigieren. Alle 15 Minuten wird ausgelesen. Die FB frägt nur alle 15 Minuten den Status der mit DECT verbunden Geräte ab. Es wird auch immer nur der letzte Status abgefragt. "Live" abfragen kann man die HKR leider nicht. Auch ein umstellen der Temperatur kann unter Umständen bis zu 15 Minuten dauern.


    Die Zeile 11 im Skript habe ich jetzt überwunden ;) Leider komm ich immer noch nicht zu einer SessionID.

    Läuft das Skript bei dir?

    Danke für die schnelle Rückmeldung!

    Quote

    echo $SHELL

    bash -x <Script>

    1

    /bin/bash


    2

    + STRING1=$'test\r'

    + STRING2=$'wort\r'

    + echo $'test\r\r'

    test

    + echo $'wort\r\r'

    wort

    + KETTE=$'test\r-wort\r\r'

    + echo $'test\r-wort\r\r'

    -wort

    Hallo zusammen,


    verzweifle an einem vermeintlich einfachem Problem, hab schon alles versucht aber bekomm es nicht hin :conf:

    Bash
    #!/bin/bash
    STRING1="test"
    STRING2="wort"
    echo ${STRING1}
    echo ${STRING2}
    #Verbinden mit Bindestrich
    KETTE="${STRING1}-${STRING2}"
    echo ${KETTE}

    Normal sollt hier nach meinem Verständnis die Ausgabe folgendermaßen ausschauen:

    test

    wort

    test-wort


    Über die Console ausgeführt wir jeweils immer der erste String ignoriert und folgendes wird ausgegeben:

    test

    wort

    -wort


    Das Skript wird über Putty in der Console ausgeführt...

    Sorry, hab ich gestern überlesen.

    Ist zum steuern und vor allem auslesen von Smarthome Daten aus der FB. Hab da z.B. ein paar Heizkörpertermostate über DECT dran.

    Lese alle Daten 1x pro Minute über einen Crontab aus. Hierfür wird immer die Session-ID benötigt. Hat auch die letzten Jahre super funktioniert bis zum Update der FB.
    Habs zuvor über PHP ausgelesen:

    Bekomm es leider nicht hin, den Code für die neue Anmeldung umzuschreiben. War schon ein paar Stunden dran...


    Das vielversprechendste ist momentan dein Skript. Hier häng ich nur noch an der Kleinigkeit, dass die 2 Strings sich nicht verbinden lassen. Hab hier schon alles mögliche ausprobiert aber in Bash hab ich kaum was gemacht bis jetzt...

    Bin mitlerweile schon etwas weiter.

    Code
    Challenge:
    ea36ac1b
    MD5:
    d5ecabfa334534a6be8a5b1d3f4499d3
    Komplett
    -d5ecabfa334534a6be8a5b1d3f4499d3

    Häng in Zeile 11, der RESPONSE verbindet die 2 Strings nicht... :wallbash:

    Bin echt langsam am verzweifeln... Hab schon alles mögliche ausprobiert, bekomm die Strings einfach nicht verbunden. Der vor dem Minus- Zeichen wird immer ignoriert :denker:

    Nur eine leere Zeile nach dem Ausführen in der Console.

    Bash
    #!/bin/bash
    FBF="192.168.178.1"
    USER="fritz1682" # oder falls nicht vorhanden, dann leer lassen
    PASS="passwort"
    CHALLENGE=$(curl -s -k "${FBF}/login_sid.lua" | grep -Po '(?<=<Challenge>).*(?=</Challenge>)')
    MD5=$(echo -n ${CHALLENGE}"-"${PASS} | iconv -f ISO8859-1 -t UTF-16LE | md5sum -b | awk '{print substr($0,1,32)}')
    RESPONSE="${CHALLENGE}-${MD5}"
    SID=$(curl -i -s -k -d "response=${RESPONSE}&username=${USER}" "${FBF}" | grep -Po -m 1 '(?<=sid=)[a-f\d]+')
    echo ${SID} | cut -d" " -f1

    Was gäbs für Möglichkeiten zur Fehlersuche? Kenn mich in bash leider gar nicht aus, Code ist auch nicht grad für Anfänger :conf::conf::conf: