-
Innlegg
1 289 -
Ble med
-
Besøkte siden sist
-
Dager vunnet
50
Innholdstype
Profiler
Forum
Blogger
Nedlastninger
Artikler
Regler
Hendelser
Galleri
Store
Alt skrevet av xibriz
-
Lesing av AMS data (AMS/HAN -> IoT)
xibriz svarte på roarfred sitt emne i Strømsparing og strøm-overvåkning
Der er det siste kortet jeg lagde, med din kretsdesign -
Lesing av AMS data (AMS/HAN -> IoT)
xibriz svarte på roarfred sitt emne i Strømsparing og strøm-overvåkning
Klart. Jeg lagde det i Fritzing, så jeg legger ved filen her. Den inneholder breadboard, skjema og PCB. AMS2.fzz -
Lesing av AMS data (AMS/HAN -> IoT)
xibriz svarte på roarfred sitt emne i Strømsparing og strøm-overvåkning
-
Lesing av AMS data (AMS/HAN -> IoT)
xibriz svarte på roarfred sitt emne i Strømsparing og strøm-overvåkning
Siden jeg ikke er like rask som @roarfred tok dette litt lenger tid enn jeg hadde tenkt, men nå er endelig dingsen min på plass Har bommet på hvilken vei USBen skal stå på kretskortet, også må jeg finne meg en lader som er vinkle en annen vei, men ellers fungerer alt som det skal- 2 368 svar
-
- 10
-
Dette er den kuleste modden jeg har sett til nå ?
-
- 5
-
Lesing av AMS data (AMS/HAN -> IoT)
xibriz svarte på roarfred sitt emne i Strømsparing og strøm-overvåkning
Det er flott å få alternativer Personlig tenker jeg at denne typer målere blir ett supplement til AMS fordi da kan man måle hver enkelt kurs i tillegg til å vite hva selve "hovedenheten" mener. Man bruke AMS til å bare hente ut nøyaktig spenning hvis man vil uten å koble på noen ekstra voltmeterløsning. -
Lesing av AMS data (AMS/HAN -> IoT)
xibriz svarte på roarfred sitt emne i Strømsparing og strøm-overvåkning
Kanskje noen tar ansvar å lager en egen tråd for den typer bokser? IoTaWatt, EmonTx, homebrew løsninger osv. -
Enig med @Odd Hvis man har tilgang til en fysisk nøkkel er det minst like lett å kopiere den. Folk har tilogmed kopiert fysiske nøkler ut fra bilder! Det kan man ikke med en nøkkelbrikke. Og nøkkelbrikken sperrer jeg på mobilen mens jeg sitter på stranden i Spania til en kostnad av 0 kr.. vet ikke hva en låsesmed tar, men det er nok litt mer
-
Dette er hovedårsaken til at jeg migrerte helt ut av Telldus-systemet når min boks fikk en "kræsj" og det var ingen mulighet for restore verken av meg eller "skyen" uten å legge inn alt på nytt manuelt.
-
Lesing av AMS data (AMS/HAN -> IoT)
xibriz svarte på roarfred sitt emne i Strømsparing og strøm-overvåkning
Meget godt jobbet @roarfred -
Lesing av AMS data (AMS/HAN -> IoT)
xibriz svarte på roarfred sitt emne i Strømsparing og strøm-overvåkning
Jeg kjører orginale stømforsyninger på alle mine Rpi. For flere år siden oppdaget vi på jobb at Rpi gikk i en slags "power saving mode" hvis den ikke hadde kraftig nok strømforsyning. De offesielle specs er: -
Lesing av AMS data (AMS/HAN -> IoT)
xibriz svarte på roarfred sitt emne i Strømsparing og strøm-overvåkning
-
Lokal lesing av HAN - The Easy Way (TM)
xibriz svarte på petersv sitt emne i Strømsparing og strøm-overvåkning
Mangler en modul øverst. Jeg har 30-50m kabel på min nå. -
Enderlig 5 GHz WiFi
-
AMS - prising og strømsparing
xibriz svarte på arneolav sitt emne i Strømsparing og strøm-overvåkning
Det er litt vanskelig og trekke konklusjoner fra strømregningen. I Januar gjorde jeg som jeg bruker. Fra ca. midt i Februar begynte jeg å lade elbilen på natten i stedet for rett etter jobb. Januar: 3029 kWh (39,82 øre/kWh) Nordpool gjennomsnitt for Januar: 30,00 øre/kWh Februar: 3190 kWh (33,40 øre/kWh) Nordpool gjennomsnitt for Februar: 36,14 øre/kWh Det kan se ut som at gjennomsnittsprisen er høyere i Februar kontra Januar på Nordpool, mens jeg har klart å oppnå en lavere gjennomsnittspris hjemme ved å endre tidspunktet på å lade elbilen -
Lesing av AMS data (AMS/HAN -> IoT)
xibriz svarte på roarfred sitt emne i Strømsparing og strøm-overvåkning
? Jeg var sikker på at jeg hadde prøvd å sette debugPort til NULL, og da skulle ikke debugPrint kjørt.. så det er litt rart hvis jeg hadde problemer med det. Men det kan jo hende at jeg bare har tenkt på saken uten å faktisk gjort det. Får kaste mer kode inn på ESPen å se hva som skjer. -
Lesing av AMS data (AMS/HAN -> IoT)
xibriz svarte på roarfred sitt emne i Strømsparing og strøm-overvåkning
Joda.. RX fra HAN og TX inn på PCen -
Lesing av AMS data (AMS/HAN -> IoT)
xibriz svarte på roarfred sitt emne i Strømsparing og strøm-overvåkning
Koblet ut debugPrint-funksjonen og da ser det stabilt ut... jeg er sikker på at jeg prøvde å sette debugPort til NULL tidligere uten at det funket... får forske litt til. Det er deilig å sitte inne i 24 grader kontra ute i 5 minus Kanskje derfor jeg finner ut av ting her -
Lesing av AMS data (AMS/HAN -> IoT)
xibriz svarte på roarfred sitt emne i Strømsparing og strøm-overvåkning
-
Lesing av AMS data (AMS/HAN -> IoT)
xibriz svarte på roarfred sitt emne i Strømsparing og strøm-overvåkning
Nå kan jeg faktisk ikke fjerne mer kode... ? /* * Simple sketch to simulate reading data from a Kamstrup * AMS Meter. * * Created 12. March 2018 by Ruben Andreassen */ #include <HanReader.h> #include <Kamstrup.h> // The HAN Port reader HanReader hanReader; void setup() { // initialize the HanReader // (passing no han port, as we are feeding data manually, but provide Serial for debugging) hanReader.setup(&Serial, 2400, SERIAL_8N1, &Serial); } void loop() { // Read one byte from the port, and see if we got a full package if (hanReader.read()) { // Get the list identifier int listSize = hanReader.getListSize(); // Only care for the ACtive Power Imported, which is found in the first list if (listSize == (int)Kamstrup::List1 || listSize == (int)Kamstrup::List2) { Serial.println(hanReader.getInt((int)Kamstrup_List1::ActiveImportPower)); } } } -
Lesing av AMS data (AMS/HAN -> IoT)
xibriz svarte på roarfred sitt emne i Strømsparing og strøm-overvåkning
Jeg har prøvd å kommentere bort alt bortsett fra en publish uten hell. Skal prøve å patche om litt i kveld så jeg kan sitte inne å holde på, blir litt lettere da men jeg holder fortatt en finger på at feilen ligger i hanreader.cpp -
Lesing av AMS data (AMS/HAN -> IoT)
xibriz svarte på roarfred sitt emne i Strømsparing og strøm-overvåkning
Her er den eksakte kopien @roarfred Den trenger en overhaling med tanke på gjentagende kode, men har kjørt problemfritt siden november /* * Simple sketch to simulate reading data from a Kamstrup * AMS Meter. * * Created 10. November 2017 by Ruben Andreassen */ #include <ESP8266WiFi.h> #include <PubSubClient.h> #include <HanReader.h> #include <Kamstrup.h> // The HAN Port reader HanReader hanReader; const char* device_name = "espams"; // WiFi and MQTT endpoints const char* ssid = ""; const char* password = ""; const char* mqtt_server = "192.168.1.125"; const char* mqtt_topic = "esp/ams"; const char* mqtt_topic_PackageTime = "esp/ams/packagetime"; const char* mqtt_topic_ListSize = "esp/ams/listsize"; const char* mqtt_topic_ListVersionIdentifier = "esp/ams/listversionidentifier"; const char* mqtt_topic_MeterID = "esp/ams/meterid"; const char* mqtt_topic_MeterType = "esp/ams/metertype"; const char* mqtt_topic_ActiveImportPower = "esp/ams/activeimportpower"; const char* mqtt_topic_ActiveExportPower = "esp/ams/activeExportpower"; const char* mqtt_topic_ReactiveImportPower = "esp/ams/reactiveimportpower"; const char* mqtt_topic_ReactiveExportPower = "esp/ams/reactiveexportpower"; const char* mqtt_topic_CurrentL1 = "esp/ams/currentl1"; const char* mqtt_topic_CurrentL2 = "esp/ams/currentl2"; const char* mqtt_topic_CurrentL3 = "esp/ams/currentl3"; const char* mqtt_topic_VoltageL1 = "esp/ams/voltagel1"; const char* mqtt_topic_VoltageL2 = "esp/ams/voltagel2"; const char* mqtt_topic_VoltageL3 = "esp/ams/voltagel3"; const char* mqtt_topic_MeterClock = "esp/ams/meterclock"; const char* mqtt_topic_CumulativeActiveImportEnergy = "esp/ams/cumulativeactiveimportenergy"; const char* mqtt_topic_CumulativeActiveExportEnergy = "esp/ams/cumulativeactiveexportenergy"; const char* mqtt_topic_CumulativeReactiveImportEnergy = "esp/ams/cumulativereactiveimportenergy"; const char* mqtt_topic_CumulativeReactiveExportEnergy = "esp/ams/cumulativereactiveexportenergy"; String last_PackageTime = ""; String last_ListVersionIdentifier = ""; String last_MeterID = ""; String last_MeterType = ""; String last_ActiveImportPower = ""; String last_ActiveExportPower = ""; String last_ReactiveImportPower = ""; String last_ReactiveExportPower = ""; String last_CurrentL1 = ""; String last_CurrentL2 = ""; String last_CurrentL3 = ""; String last_VoltageL1 = ""; String last_VoltageL2 = ""; String last_VoltageL3 = ""; WiFiClient espClient; PubSubClient client(espClient); void setup() { setupWiFi(); setupMqtt(); // initialize the HanReader // (passing no han port, as we are feeding data manually, but provide Serial for debugging) hanReader.setup(&Serial, 2400, SERIAL_8N1, &Serial); } void setupMqtt() { client.setServer(mqtt_server, 1883); } void setupWiFi() { WiFi.mode(WIFI_STA); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); } } void loop() { loopMqtt(); // Read one byte from the port, and see if we got a full package if (hanReader.read()) { // Get the list identifier int listSize = hanReader.getListSize(); // Only care for the ACtive Power Imported, which is found in the first list if (listSize == (int)Kamstrup::List1 || listSize == (int)Kamstrup::List2) { //Publish uptime to let the world know i'm alive client.publish(mqtt_topic, ((String)millis()).c_str()); String current_ListVersionIdentifier = hanReader.getString((int)Kamstrup_List1::ListVersionIdentifier); if (current_ListVersionIdentifier != last_ListVersionIdentifier || listSize == (int)Kamstrup::List2) { client.publish(mqtt_topic_ListVersionIdentifier, current_ListVersionIdentifier.c_str()); last_ListVersionIdentifier = current_ListVersionIdentifier; } String current_MeterID = hanReader.getString((int)Kamstrup_List1::MeterID); if (current_MeterID != last_MeterID || listSize == (int)Kamstrup::List2) { client.publish(mqtt_topic_MeterID, current_MeterID.c_str()); last_MeterID = current_MeterID; } String current_MeterType = hanReader.getString((int)Kamstrup_List1::MeterType); if (current_MeterType != last_MeterType || listSize == (int)Kamstrup::List2) { client.publish(mqtt_topic_MeterType, current_MeterType.c_str()); last_MeterType = current_MeterType; } String current_PackageTime = ((String)hanReader.getPackageTime()); if (current_PackageTime != last_PackageTime || listSize == (int)Kamstrup::List2) { client.publish(mqtt_topic_PackageTime, current_PackageTime.c_str()); last_PackageTime = current_PackageTime; } String current_ActiveImportPower = (String)hanReader.getInt((int)Kamstrup_List1::ActiveImportPower); if (current_ActiveImportPower != last_ActiveImportPower || listSize == (int)Kamstrup::List2) { client.publish(mqtt_topic_ActiveImportPower, current_ActiveImportPower.c_str()); last_ActiveImportPower = current_ActiveImportPower; } String current_ActiveExportPower = (String)hanReader.getInt((int)Kamstrup_List1::ActiveExportPower); if (current_ActiveExportPower != last_ActiveExportPower || listSize == (int)Kamstrup::List2) { client.publish(mqtt_topic_ActiveExportPower, current_ActiveExportPower.c_str()); last_ActiveExportPower = current_ActiveExportPower; } String current_ReactiveImportPower = (String)hanReader.getInt((int)Kamstrup_List1::ReactiveImportPower); if (current_ReactiveImportPower != last_ReactiveImportPower || listSize == (int)Kamstrup::List2) { client.publish(mqtt_topic_ReactiveImportPower, current_ReactiveImportPower.c_str()); last_ReactiveImportPower = current_ReactiveImportPower; } String current_ReactiveExportPower = (String)hanReader.getInt((int)Kamstrup_List1::ReactiveExportPower); if (current_ReactiveExportPower != last_ReactiveExportPower || listSize == (int)Kamstrup::List2) { client.publish(mqtt_topic_ReactiveExportPower, current_ReactiveExportPower.c_str()); last_ReactiveExportPower = current_ReactiveExportPower; } String current_CurrentL1 = (String)((float)hanReader.getInt((int)Kamstrup_List1::CurrentL1) / 100.0); if (current_CurrentL1 != last_CurrentL1 || listSize == (int)Kamstrup::List2) { client.publish(mqtt_topic_CurrentL1, current_CurrentL1.c_str()); last_CurrentL1 = current_CurrentL1; } String current_CurrentL2 = (String)((float)hanReader.getInt((int)Kamstrup_List1::CurrentL1) / 100.0); if (current_CurrentL2 != last_CurrentL2 || listSize == (int)Kamstrup::List2) { client.publish(mqtt_topic_CurrentL2, current_CurrentL2.c_str()); last_CurrentL2 = current_CurrentL2; } String current_CurrentL3 = (String)((float)hanReader.getInt((int)Kamstrup_List1::CurrentL3) / 100.0); if (current_CurrentL3 != last_CurrentL3 || listSize == (int)Kamstrup::List2) { client.publish(mqtt_topic_CurrentL3, current_CurrentL3.c_str()); last_CurrentL3 = current_CurrentL3; } String current_VoltageL1 = (String)(hanReader.getInt((int)Kamstrup_List1::VoltageL1)); if (current_VoltageL1 != last_VoltageL1 || listSize == (int)Kamstrup::List2) { client.publish(mqtt_topic_VoltageL1, current_VoltageL1.c_str()); last_VoltageL1 = current_VoltageL1; } String current_VoltageL2 = (String)(hanReader.getInt((int)Kamstrup_List1::VoltageL2)); if (current_VoltageL2 != last_VoltageL2 || listSize == (int)Kamstrup::List2) { client.publish(mqtt_topic_VoltageL2, current_VoltageL2.c_str()); last_VoltageL2 = current_VoltageL2; } String current_VoltageL3 = (String)(hanReader.getInt((int)Kamstrup_List1::VoltageL3)); if (current_VoltageL3 != last_VoltageL3 || listSize == (int)Kamstrup::List2) { client.publish(mqtt_topic_VoltageL3, current_VoltageL3.c_str()); last_VoltageL3 = current_VoltageL3; } if (listSize == (int)Kamstrup::List2) { client.publish(mqtt_topic_MeterClock, ((String)hanReader.getTime((int)Kamstrup_List2::MeterClock)).c_str()); client.publish(mqtt_topic_CumulativeActiveImportEnergy, ((String)hanReader.getInt((int)Kamstrup_List2::CumulativeActiveImportEnergy)).c_str()); client.publish(mqtt_topic_CumulativeActiveExportEnergy, ((String)hanReader.getInt((int)Kamstrup_List2::CumulativeActiveExportEnergy)).c_str()); client.publish(mqtt_topic_CumulativeReactiveImportEnergy, ((String)hanReader.getInt((int)Kamstrup_List2::CumulativeReactiveImportEnergy)).c_str()); client.publish(mqtt_topic_CumulativeReactiveExportEnergy, ((String)hanReader.getInt((int)Kamstrup_List2::CumulativeReactiveExportEnergy)).c_str()); } } } } // Ensure the MQTT lirary gets some attention too void loopMqtt() { if (!client.connected()) { reconnectMqtt(); } client.loop(); } void reconnectMqtt() { // Loop until we're reconnected while (!client.connected()) { // Attempt to connect if (client.connect("ESP8266Client")) { // Once connected, publish an announcement... // client.publish("sensors", "hello world"); // ... and resubscribe // client.subscribe("inTopic"); } else { // Wait 5 seconds before retrying delay(5000); } } } -
Lesing av AMS data (AMS/HAN -> IoT)
xibriz svarte på roarfred sitt emne i Strømsparing og strøm-overvåkning
Det er litt merkelig fordi jeg fikk problemer med "orginalkoden" min, som var den jeg allitd har kjørt. Den eneste forskjellen er oppdateringen i HAN-biblioteket. -
Lesing av AMS data (AMS/HAN -> IoT)
xibriz svarte på roarfred sitt emne i Strømsparing og strøm-overvåkning
Jeg kan prøve å fjerne noen mqtt publish å se om det hjelper. -
Lesing av AMS data (AMS/HAN -> IoT)
xibriz svarte på roarfred sitt emne i Strømsparing og strøm-overvåkning
Da har jeg gode å dårlige nyheter @roarfred Koden parser dataene fra måleren min riktig Men det er kun en gang koden klarer å lese inn hele datastrømmen fra måleren rett etter oppstart. Resten av tiden blir innlesingen avbrutt av feilmeldingen "Soft WDT reset". Noen treff på google peker på at det kan være for dårlig strømforsyning, men jeg bruker den jeg har brukt hele tiden i dette prosjektet (12v 2A), men jeg prøvde en kraftigere på 12v 3A uten noen forskjell. Lurer på hva det kan være....