Tropfbewässerung: Sketche kombinieren
Moderator: Co-Administratoren
-
- Beiträge: 12085
- Registriert: 20.11.2016, 20:01
- Hat sich bedankt: 847 Mal
- Danksagung erhalten: 2139 Mal
- Kontaktdaten:
Re: Tropfbewässerung: Sketche kombinieren
Und einfach eine externe Diagramm-Lösung einsetzen kommt nicht infrage?
Dann bist du völlig unabhängig von den Datentypen und den Internals der HMIPServer.jar
Da reicht sogar schon das CCU-Historian Addon auf der CCU aus.
Ansonsten kann ich Grafana sehr empfehlen, das nutze ich für Diagramme.
Dann bist du völlig unabhängig von den Datentypen und den Internals der HMIPServer.jar
Da reicht sogar schon das CCU-Historian Addon auf der CCU aus.
Ansonsten kann ich Grafana sehr empfehlen, das nutze ich für Diagramme.
-
- Beiträge: 6
- Registriert: 10.08.2021, 14:52
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 7 Mal
- Danksagung erhalten: 1 Mal
Re: Tropfbewässerung: Sketche kombinieren
Hallo zusammen.
Ich habe in den letzten Tagen den Uni-sen-weight Sensor von Jerome nachgebaut und in mein RaspberryMatic System integriert.
Funktioniert alles tadellos.
Ich würde nun zusätzlich gerne eine Temperaturmessung mittels 18DS20 integrieren, und den aktuellen Temperaturwert mit im Datentelegramm
Übertragen und in der WebUI Anzeigen lassen. Derzeit komme ich leider nicht weiter, da ich dazu bis dato keinerlei Literatur bis auf die
Programm Beispiele in diesem Forum gefunden habe.
Die Temperaturmessung im Arduino Sketch funktioniert soweit.
Allerdings weiß ich nicht welche konkreten Änderungen im Sketch (Message::) sowie an der zugehörigen XML Datei notwendig sind.
Insbesondere würde mich interessieren wie dass mit den Indexwerten zu verstehen und zu handeln ist…..(oder gibt es dazu irgendwo eine Beschreibung?)
Kann mir evtl. einer der hier vertretenen Spezialisten oder auch Jérôme weiterhelfen?
Wäre nett. Gruß JM
Ich habe in den letzten Tagen den Uni-sen-weight Sensor von Jerome nachgebaut und in mein RaspberryMatic System integriert.
Funktioniert alles tadellos.
Ich würde nun zusätzlich gerne eine Temperaturmessung mittels 18DS20 integrieren, und den aktuellen Temperaturwert mit im Datentelegramm
Übertragen und in der WebUI Anzeigen lassen. Derzeit komme ich leider nicht weiter, da ich dazu bis dato keinerlei Literatur bis auf die
Programm Beispiele in diesem Forum gefunden habe.
Die Temperaturmessung im Arduino Sketch funktioniert soweit.
Allerdings weiß ich nicht welche konkreten Änderungen im Sketch (Message::) sowie an der zugehörigen XML Datei notwendig sind.
Insbesondere würde mich interessieren wie dass mit den Indexwerten zu verstehen und zu handeln ist…..(oder gibt es dazu irgendwo eine Beschreibung?)
Kann mir evtl. einer der hier vertretenen Spezialisten oder auch Jérôme weiterhelfen?
Wäre nett. Gruß JM
-
- Beiträge: 537
- Registriert: 20.08.2019, 06:23
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 95 Mal
Re: Tropfbewässerung: Sketche kombinieren
Willkommen hier im Forum!
Du willst also ein Waagenthermometer oder eine Thermometerwaage bauen. Dazu muss neben Erweiterung der Message und des xml ein neues device model kreiert werden, dass es noch nicht gibt. Infos auch unter asksinpp.de.
Man kann das alles grundsaetzlich aus den vorhandenen Beispielen recht gut ableiten, aber die Lernkurve ist echt steil. Anleitung waere allerdings recht komplex und eben auch zeitaufwendig, daher gibts keine. Zur konkreten Frage nach dem Index im xml, das ist die Position des Wertes in der Payload der Message in Byte,Bit, kann man gut nachzaehlen, wenn man sketch und xml nebeneinander legt.
Am besten, Du arbeitest Dich weiter rein und stellst konkrete Detailfragen, da kommen sicher Antworten.
Viele Gruesse,
Stephan
Du willst also ein Waagenthermometer oder eine Thermometerwaage bauen. Dazu muss neben Erweiterung der Message und des xml ein neues device model kreiert werden, dass es noch nicht gibt. Infos auch unter asksinpp.de.
Man kann das alles grundsaetzlich aus den vorhandenen Beispielen recht gut ableiten, aber die Lernkurve ist echt steil. Anleitung waere allerdings recht komplex und eben auch zeitaufwendig, daher gibts keine. Zur konkreten Frage nach dem Index im xml, das ist die Position des Wertes in der Payload der Message in Byte,Bit, kann man gut nachzaehlen, wenn man sketch und xml nebeneinander legt.
Am besten, Du arbeitest Dich weiter rein und stellst konkrete Detailfragen, da kommen sicher Antworten.
Viele Gruesse,
Stephan
-
- Beiträge: 12085
- Registriert: 20.11.2016, 20:01
- Hat sich bedankt: 847 Mal
- Danksagung erhalten: 2139 Mal
- Kontaktdaten:
Re: Tropfbewässerung: Sketche kombinieren
Ja, das ist mit 2 Sätzen nicht erklärt.
Halte ich auch für zielführender, denn bei
ist schon unklar, ob du bei Frames oder Parametern meinst
-
- Beiträge: 6
- Registriert: 10.08.2021, 14:52
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 7 Mal
- Danksagung erhalten: 1 Mal
Re: Tropfbewässerung: Sketche kombinieren
Hallo Stephan , hallo Jerome,vielen Dank für eure schnelle Antwort.
Ja Ihr habt beide recht ich muss konkreter werden.
Also das ganze soll dazu dienen, die starke Temperaturabhängigkeit des HX711 an meiner Waage zu kompensieren.
Diese befindet sich am Pool und meldet mir derzeit das aktuelle Gewicht vom PH- Kanister zurück.
Als Grundlage dient hierbei die kompensations Formel von den Bienenzüchtern.
Zur Zeit gelingt es mir immerhin schon Setup Daten von der Raspberrymatic zum Aktor zu senden.
Umgekehrt aber, um Daten vom Aktor zur Raspberrymatic zu senden scheitere ich.
Deshalb anbei ein Auszug aus dem Sketch um die aktuelle Temperatur (Variable-> send_temp) zu senden:
und die aktuell abgeänderte XML
Ab-Anlernen nach jeder Änderung sowie Neustart von rfd und ReGaHSS ist obligatorisch.
Ich sehe zwar im WebUI das Datenfeld Temperatur, aber der aktuelle Messwert wird mir nicht angezeigt?
Was mache ich verkehrt ??
Danke und Gruß JM
angepasste XML von Jerome:
Ja Ihr habt beide recht ich muss konkreter werden.
Also das ganze soll dazu dienen, die starke Temperaturabhängigkeit des HX711 an meiner Waage zu kompensieren.
Diese befindet sich am Pool und meldet mir derzeit das aktuelle Gewicht vom PH- Kanister zurück.
Als Grundlage dient hierbei die kompensations Formel von den Bienenzüchtern.
Zur Zeit gelingt es mir immerhin schon Setup Daten von der Raspberrymatic zum Aktor zu senden.
Umgekehrt aber, um Daten vom Aktor zur Raspberrymatic zu senden scheitere ich.
Deshalb anbei ein Auszug aus dem Sketch um die aktuelle Temperatur (Variable-> send_temp) zu senden:
und die aktuell abgeänderte XML
Ab-Anlernen nach jeder Änderung sowie Neustart von rfd und ReGaHSS ist obligatorisch.
Ich sehe zwar im WebUI das Datenfeld Temperatur, aber der aktuelle Messwert wird mir nicht angezeigt?
Was mache ich verkehrt ??
Danke und Gruß JM
Code: Alles auswählen
class MeasureEventMsg : public Message {
public:
void init(uint8_t msgcnt, uint8_t channel, int32_t weight, bool batlow, uint8_t volt, uint8_t send_temp) {
Message::init(0x10, msgcnt, 0x53, BIDI | WKMEUP, batlow ? 0x80 : 0x00, channel & 0xff );
pload[0] = (weight >> 24) & 0x7f;
pload[1] = (weight >> 16) & 0xff;
pload[2] = (weight >> 8) & 0xff;
pload[3] = (weight) & 0xff;
pload[4] = (volt) & 0xff;
pload[5] = (send_temp) & 0xff;
}
};
Code: Alles auswählen
<?xml version="1.0" encoding="iso-8859-1"?>
<device version="2" rx_modes="CONFIG,WAKEUP,LAZY_CONFIG" cyclic_timeout="7200">
<supported_types>
<type name="HB-UNI-Sen-WEIGHT" id="HB-UNI-Sen-WEIGHT">
<parameter index="10.0" size="2.0" const_value="0xF34B" />
</type>
</supported_types>
<paramset type="MASTER" id="hm_uni_sen_dev_master">
<parameter id="HBWEA_TRANSMIT_INTERVAL">
<logical type="integer" min="10" max="3600" default="60" unit="s" />
<physical type="integer" interface="config" list="0" index="32" size="2" />
</parameter>
<parameter id="LOW_BAT_LIMIT">
<logical type="float" min="1.9" max="6" default="2.6" unit="V" />
<physical type="integer" interface="config" list="0" index="18" size="1" />
<conversion type="float_integer_scale" factor="10" />
</parameter>
<parameter id="HB_AVERAGING">
<logical type="integer" min="1" max="20" unit="" default="8"/>
<physical type="integer" interface="config" list="0" index="6" size="1"/>
</parameter>
<parameter id="Gramm pro Grad Positiv">
<logical type="float" min="-50000.00" max="50000.00" unit="g" default="0.0" />
<physical type="integer" signed="true" interface="config" list="0" index="35.0" size="4" />
<conversion type="float_integer_scale" factor="1.0"/>
</parameter>
<parameter id="Gramm pro Grad Negativ">
<logical type="float" min="0" max="50000.00" unit="g" default="0.0" />
<physical type="integer" interface="config" list="0" index="39.0" size="4" />
<conversion type="float_integer_scale" factor="1.0"/>
</parameter>
<parameter id="Kalibrier Temperatur">
<logical type="float" min="0" max="50.00" unit="°C" default="20.0" />
<physical type="integer" interface="config" list="0" index="43.0" size="4" />
<conversion type="float_integer_scale" factor="1.0"/>
</parameter>
</paramset>
<channels>
<channel index="0" type="MAINTENANCE" ui_flags="internal" class="maintenance" count="1">
<paramset type="MASTER" id="maint_ch_master" />
<paramset type="VALUES" id="maint_ch_values">
<parameter id="UNREACH" operations="read,event" ui_flags="service">
<logical type="boolean" />
<physical type="integer" interface="internal" value_id="UNREACH" />
</parameter>
<parameter id="STICKY_UNREACH" operations="read,write,event" ui_flags="service,sticky">
<logical type="boolean" />
<physical type="integer" interface="internal" value_id="STICKY_UNREACH" />
</parameter>
<parameter id="CONFIG_PENDING" operations="read,event" ui_flags="service">
<logical type="boolean" />
<physical type="integer" interface="internal" value_id="CONFIG_PENDING" />
</parameter>
<parameter id="LOWBAT" operations="read,event" ui_flags="service">
<logical type="boolean"/>
<physical type="integer" interface="internal" value_id="LOWBAT"/>
</parameter>
<parameter id="RSSI_DEVICE" operations="read,event">
<logical type="integer" />
<physical type="integer" interface="internal" value_id="RSSI_DEVICE" />
</parameter>
<parameter id="RSSI_PEER" operations="read,event">
<logical type="integer" />
<physical type="integer" interface="internal" value_id="RSSI_PEER" />
</parameter>
<parameter id="DEVICE_IN_BOOTLOADER" operations="read,event" ui_flags="service">
<logical type="boolean" />
<physical type="integer" interface="internal" value_id="DEVICE_IN_BOOTLOADER" />
</parameter>
<parameter id="UPDATE_PENDING" operations="read,event" ui_flags="service">
<logical type="boolean" />
<physical type="integer" interface="internal" value_id="UPDATE_PENDING" />
</parameter>
</paramset>
</channel>
<channel autoregister="true" index="1" type="HB_GENERIC_WEIGHT" count_from_sysinfo="23.0:1.0">
<paramset type="MASTER" id="HB-UNI-Sen-WEIGHT_master">
<parameter id="HB_TARAONRESTART">
<logical type="boolean" default="false"/>
<physical type="integer" interface="config" list="1" index="5" size="0.1"/>
</parameter>
<parameter id="HB_TARA">
<logical type="float" min="-50000.00" max="50000.00" unit="g" default="0"/>
<physical type="integer" signed="true" interface="config" list="1" index="1" size="4"/>
<conversion type="float_integer_scale" factor="100"/>
</parameter>
</paramset>
<paramset type="VALUES" id="HB-UNI-Sen-WEIGHT_values">
<parameter id="HB_WEIGHT" operations="read,event" control="NONE">
<logical type="float" min="-50000.0" max="50000.00" unit="g"/>
<physical type="integer" interface="command" value_id="HB_WEIGHT" no_init="true">
<event frame="MEASURE_EVENT"/>
</physical>
<conversion type="float_integer_scale" factor="100"/>
</parameter>
<parameter id="OPERATING_VOLTAGE" operations="read,event" control="NONE">
<logical type="float" min="0.0" max="25.5" unit=" V"/>
<physical type="integer" interface="command" value_id="OPERATING_VOLTAGE">
<event frame="MEASURE_EVENT"/>
</physical>
<conversion type="float_integer_scale" factor="10"/>
</parameter>
<parameter id="LOWBAT" operations="read,event" control="NONE">
<logical type="boolean"/>
<physical type="integer" interface="command" value_id="LOWBAT">
<event frame="MEASURE_EVENT"/>
<event frame="INFO_LEVEL"/>
</physical>
</parameter>
<parameter id="TEMPERATURE" operations="read,event" control="NONE">
<logical type="float" min="-80.0" max="80.0" unit=" °C"/>
<physical type="integer" interface="command" value_id="TEMPERATURE" no_init="true">
<event frame="MEASURE_EVENT"/>
</physical>
<conversion type="float_integer_scale" factor="10"/>
</parameter>
</paramset>
<paramset type="LINK" id="HB-UNI-Sen-WEIGHT_link" />
</channel>
</channels>
<frames>
<frame id="INFO_LEVEL" direction="from_device" allowed_receivers="BROADCAST,CENTRAL,OTHER" event="true" type="0x10" subtype="6" subtype_index="9" channel_field="10">
<parameter type="integer" index="12.7" size="0.1" param="LOWBAT"/>
</frame>
<frame id="MEASURE_EVENT" direction="from_device" event="true" channel_field="10" type="0x53">
<parameter type="integer" index="9.7" size="0.1" param="LOWBAT"/>
<parameter type="integer" signed="true" index="11.0" size="3.7" param="HB_WEIGHT" />
<parameter type="integer" signed="true" index="15.0" size="1.0" param="OPERATING_VOLTAGE" />
<parameter type="integer" signed="true" index="17.0" size="1.0" param="TEMPERATURE" />
</frame>
</frames>
<paramset_defs></paramset_defs>
</device>
-
- Beiträge: 537
- Registriert: 20.08.2019, 06:23
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 95 Mal
Re: Tropfbewässerung: Sketche kombinieren
Erster Gedanke zu Deinem Vorhaben: Wenn es nur um eine Temperaturkompensation innerhalb des Device geht, mach das doch direkt dort, dann brauchst Du kein neues device model, kein neues add-on auf der CCU etc. Oder spricht etwas dagegen?
Viele Gruesse,
Stephan
Viele Gruesse,
Stephan
-
- Beiträge: 537
- Registriert: 20.08.2019, 06:23
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 95 Mal
Re: Tropfbewässerung: Sketche kombinieren
PS: In Deinem Code ist die message ein byte zu kurz, deswegen ist die Temperatur nicht drin. Messagelaenge muss 11 byte + Anzahl bytes der Payload sein, bei Dir also 11h statt 10h. Solltest Du im seriellen Montor beobachten koennen.
-
- Beiträge: 6
- Registriert: 10.08.2021, 14:52
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 7 Mal
- Danksagung erhalten: 1 Mal
Re: Tropfbewässerung: Sketche kombinieren
Hallo Stephan, ja Du hast recht könnte ich machen.
Aber ich will nicht bei jeder Änderung der Einstellungen zum Technikschrank im Garten wo der Aktor steht hinlatschen.
Hallo Stephan auch eine Änderung der Message auf 11Byte Länge hat leider trotz Neustart und erneuten Ab-Anlernen keinen Erfolg gebracht
Die Lösung muss meiner Ansicht nach in der XML zu finden sein.
Seriellen Monitor ? finde ich wo ?
Gruß JM
Aber ich will nicht bei jeder Änderung der Einstellungen zum Technikschrank im Garten wo der Aktor steht hinlatschen.
Hallo Stephan auch eine Änderung der Message auf 11Byte Länge hat leider trotz Neustart und erneuten Ab-Anlernen keinen Erfolg gebracht
Die Lösung muss meiner Ansicht nach in der XML zu finden sein.
Seriellen Monitor ? finde ich wo ?
Gruß JM
-
- Beiträge: 12085
- Registriert: 20.11.2016, 20:01
- Hat sich bedankt: 847 Mal
- Danksagung erhalten: 2139 Mal
- Kontaktdaten:
Re: Tropfbewässerung: Sketche kombinieren
Der Index muss 16 sein
<parameter type="integer" signed="true" index="16.0" size="1.0" param="TEMPERATURE" />
-
- Beiträge: 12085
- Registriert: 20.11.2016, 20:01
- Hat sich bedankt: 847 Mal
- Danksagung erhalten: 2139 Mal
- Kontaktdaten:
Re: Tropfbewässerung: Sketche kombinieren
Reicht dir 1 Byte für die Temperatur überhaupt ? Verzichtest du auf Nachkommastellen sowie Negativwerte?