Posts by gwaag

    Script von Tell funktioniert zwar, aber es zeigt mir den falschen Wert an.



    Ich brauche diesen Wert:

    Code
    "name": "7" 
    
    "wert": 20.600000381469727,


    Die aktuelle Raumtemperatur fuer Wohnen west wird 2 x Angezeigt im .json,

    1x als temperatur, ueber name "Wohnen west"

    1x als wert unter name "7"


    Der Wert aus dem script ist nicht die aktuelle Raumtemperatur.

    Hallo Tell,

    Danke, das funktioniert. Es zeigt 23.439999999999998 an.



    Um die aktuelle Raumtemperatur zu erhalten, habe ich sensoren, geaendert in, temperatur.

    Jetzt kommt folgendes:


    Code
    pi@raspberrypi:~/th $ /home/pi/th/testapi.py
    Traceback (most recent call last):
    File "/home/pi/th/testapi.py", line 13, in <module>
    print( raum["temperatur"][0]["wert"] )
    TypeError: 'float' object is not subscriptable

    Habe es jetzt etwas umgeschrieben:

    Jetzt kommt das raus:


    Das kommt dabei raus:

    pi@raspberrypi:~/th $ /home/pi/th/testapi.py

    Traceback (most recent call last):

    File "/home/pi/th/testapi.py", line 9, in <module>

    obj = json.loads(json_data)

    File "/usr/lib/python3.7/json/__init__.py", line 341, in loads

    raise TypeError(f'the JSON object must be str, bytes or bytearray, '

    TypeError: the JSON object must be str, bytes or bytearray, not Response

    Hallo,

    Habe ein neues Projekt und möchte folgendes machen:

    Ich habe einige Raumthermometer installiert ( von alter ERR Controme Steuerung) und möchte nun den Sensor Temparatur vom Raum Whz west auslesen und weiter verarbeiten.


    Die Daten aller Werte der Steuerung bekomme ich schon als .json mit diesem script.


    Code
    #!/usr/bin/env python3
    
    import requests
    
    # get data from location as JSON
    
    r = requests.get("http://192.168.0.23/get/json/v1/1/temps/")
    data = r.json()
    print (data)
    r.close()

    Die Daten sehen dann als print, so aus:

    Code



    Wie bekomme ich jetzt nur den Wert, Whz west mit der Temparaturanzeige heraus?


    Wie kann ich dann in Python programmieren dass,


    Code
    if temparatur >= 21:
        mach irgendwas

    Geht auch mit touch pad mit einem Notebook, also ohne Maus.


    Im Script mit nano, ctr. c und dann auf der Kommandozeile, rechte untere ecke des touch pads drücken und schon erscheint der kopierte Text vom Script in der Kommandozeile.

    Code
    timewindow1 = (5*60+0) <= Now < (22*60+0)      # ein

    Zwischen 5.00h und 22.00h ist die Lampe ein. (Zeitfenster1)

    Schaltet um 5.00h ein und um 22.00h aus

    Wenn ein Ereignis aber erst um 8.06h eintritt, schaltet es ebenfalls ein.

    z.B.

    Ueberschuss PV Anlage

    timewindow1 am Morgen, timewindow2 am Nachmittag

    Code
    if einspeisung < -1000 and timewindow1 or einspeisung < -1000 and timewindow2:
        conn = http.client.HTTPConnection("[192.168.0.135]")
        conn.request("GET", "/relay/0?turn=on")   # ON
        logging.info('Boiler on')  # Logeintrag
        # subprocess.run("/home/pi/th/test_ein.py")   # LED ein
        sleep(7200)        # mindestens  2h eingeschaltet lassen
        logging.info('sleep')  # Logeintrag

    Danke _blackjack-

    Dein script funktioniert, werde es mal weiter beobachten.

    Deines ist zugegebenermassen viel übersichtlicher.

    time modul ist noch ein ueberbleibsel von einem script das ich kopiert habe

    Das ganz mit dem now and Now habe ich mal von irgend wo kopiert, funktioniert aber ( auch mit minuten)

    timewindow1, es kann später auch mal noch timewindow2 geben

    Danke und Gruss

    gwaag

    Hallo

    habe einen nose red flow, der ein python script startet, je nach Stromverbrauch der WP.

    Debug sagt, dass das script ca. alle 30sec ausgefuehrt wird.

    Das script steuert eine Lampe, high > 400w, low > 50w


    Leider gibt es immer wieder Unterbrüche, d.h. Lampe ist nicht dauern an, sondern geht an, nach ca. 30 sec wieder aus und 5 sec später wieder an.


    Was kann ich tun damit die Lampe dauerhaft an ist?


    Nein habe nie selber etwas da eingetragen.

    Aber Dein Tipp mit der bashrc war richtig, da hatte es von der iobroker installation einige eintraege.

    Habe glaube ich gestern den iobrocker deinstalliert, aber in der bashrc waren noch diese Zeilen.

    Nach loeschen der Zeilen ist es auch nach dem login wieder normal.

    Danke und Gruss

    gwaag

    Soeben erfolgreich getestet mit Buster:

    Code
    #!/usr/bin/bash -x
    
    echo -n -e "\x32\x00\x55" | nc -u -w 1 192.168.0.20 8899
    echo -n -e "\x39\x00\x55" | nc -u -w 1 192.168.0.20 8899
    echo -n -e "\x32\x00\x55" | nc -u -w 1 192.168.0.20 8899
    echo -n -e "\x39\x00\x55" | nc -u -w 1 192.168.0.20 8899
    echo -n -e "\x32\x00\x55" | nc -u -w 1 192.168.0.20 8899
    echo -n -e "\x39\x00\x55" | nc -u -w 1 192.168.0.20 8899
    echo -n -e "\x32\x00\x55" | nc -u -w 1 192.168.0.20 8899
    echo -n -e "\x39\x00\x55" | nc -u -w 1 192.168.0.20 8899

    Schaltet 4x ein und 4x aus

    Jessie


    pi@raspberrypi:~/th $ strings /bin/nc.openbsd | grep -iE 'eof|version'

    -q secs quit after EOF on stdin and delay of secs

    .gnu.version

    .gnu.version_r



    Buster


    pi@raspberrypi:~/th $ strings /bin/nc.openbsd | grep -iE 'eof|version'

    -N Shutdown the network socket after EOF on stdin

    -q secs quit after EOF on stdin and delay of secs

    .gnu.version

    .gnu.version_r


    Buster

    pi@raspberrypi:~/th $ ls -la /bin/nc.openbsd

    -rwxr-xr-x 1 root root 30188 Feb 12 2019 /bin/nc.openbsd

    Buster


    pi@raspberrypi:~/th $ apt-cache policy netcat

    netcat:

    Installiert: 1.10-41.1

    Installationskandidat: 1.10-41.1

    Versionstabelle:

    *** 1.10-41.1 500

    500 http://raspbian.raspberrypi.org/raspbian buster/main armhf Packages

    100 /var/lib/dpkg/status


    Jessie


    pi@raspberrypi:~/th $ apt-cache policy netcat

    netcat:

    Installiert: (keine)

    Installationskandidat: 1.10-41

    Versionstabelle:

    1.10-41 0

    500 http://ftp.de.debian.org/debian/ jessie/main armhf Packages


    Komisch es scheint so, als mit Jessie Karte nc gar nicht installiert ist, aber seit Jahren funktioniert hat ?


    Soeben nochmals mit Jessie getestet:


    Bash
    #!/bin/bash -x
    
    
    echo -n -e "\x32\x00\x55" | nc -u -q 1 192.168.0.20 8899  # ein
    sleep 1
    echo -n -e "\x39\x00\x55" | nc -u -q 1 192.168.0.20 8899  # aus
    sleep 1

    Funtioniert einwandfrei.


    Bei Jessie which bash:

    pi@raspberrypi:~/th $ which bash

    /bin/bash


    Edit:

    Jessie

    pi@raspberrypi:~/th $ ls -la /bin/nc.openbsd

    -rwxr-xr-x 1 root root 26256 Jun 23 2012 /bin/nc.openbsd

    Ja auf Win Rechner zwischengespeichert.